Rust est un langage de programmation compil multi-paradigme conu et dvelopp par Mozilla Research depuis 2010. Il a t conu pour tre "un langage fiable, concurrent, pratique", supportant les styles de programmation purement fonctionnel, modle d'acteur, procdural, ainsi qu'orient objet sous certains aspects.
Du fait de la politique de Mozilla, Rust est entirement dvelopp de faon ouverte et sollicite les remarques et contributions de la communaut. La conception du langage est graduellement amliore au travers des retours de l'quipe et la majorit des contributions proviennent de la communaut.
L'une des pistes envisages pour atteindre cet objectif consiste rcrire des lments de code C ou C++ en Rust, un langage conu pour s'appliquer aux mmes domaines que le C et le C++, mais avec des garanties de scurit accrues. Afin de dterminer si Rust peut contribuer empcher les nouveaux contributeurs d'introduire des vulnrabilits et, par consquent, allger le fardeau des mainteneurs, nous examinons le projet Oxidation de Mozilla, qui a remplac des composants du navigateur web Firefox par des quivalents crits en Rust.
Nous utilisons les donnes disponibles de ces projets pour driver les paramtres d'une nouvelle application des courbes d'apprentissage, que nous utilisons pour estimer la proportion de modifications qui introduisent des vulnrabilits de la part de nouveaux contributeurs d'une manire qui est directement comparable.
Nous constatons qu'en dpit des proccupations relatives la facilit d'utilisation, les nouveaux contributeurs aux projets Rust sont environ 70 fois moins susceptibles d'introduire des vulnrabilits que les nouveaux contributeurs aux projets C++.
Nous avons galement constat que le taux de nouveaux contributeurs augmentait globalement aprs le passage Rust, ce qui implique que cette diminution des vulnrabilits de la part des nouveaux contributeurs ne rsulte pas d'une plus petite rserve de dveloppeurs plus comptents, et que Rust peut en fait faciliter l'arrive de nouveaux contributeurs.
Dans le mme temps, nous analysons qualitativement les vulnrabilits Rust dans ces projets, et mesurons l'efficacit de l'algorithme commun SZZ pour identifier les commits induisant des bogues partir de leurs correctifs.
Et vous ?
Quel est votre avis sur le sujet ?
Selon vous, les conclusions de cette recherche sont-elles crdibles et pertinentes ?
Voir aussi